<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      .box1 {
        width: 200px;
        height: 200px;
        background-color: #bfa;
        margin: 0 auto;
        margin-top: 100px;

        /* 
                变形就是指通过css来改变元素的形状或位置
                    变形不会影响页面的布局
                - transform 用来设置元素的变形效果
                    -平移：
                        translateX（） 沿着x轴方向平移
                        translateY ()  沿着y轴平移
                        translateZ（） 沿着z轴平移
                        多个属性用空格隔开
             */
        transform: translateX(80%);
        /* transform: translateY(50%); */
      }
      /* .box2{
            width: 200px;
            height: 200px;
            background-color: orange;
            margin: 0 auto;
        } */
      .box3 {
        /* width: 100px;
            height: 100px; */
        background-color: blue;
        position: absolute;
        /* top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            margin: auto; */
        /* 
            当盒子大小不确定，被内容撑开
            不能使用这种方式居中，因为没设置宽高，会auto调宽度高度
            这种居中防止只适用于大小确实的元素
             */
        left: 50%;
        /* 此时元素在中线右边
                通过transform相对于自己改变位置
              */
        transform: translateX(-50%) translateY(-50%);

        top: 50%;
      }
      .box4,
      .box5 {
        width: 200px;
        height: 300px;
        background-color: burlywood;
        float: left;
        margin: 0 10px;
        transition: all 0.3s;
      }
      .box4:hover,
      .box5:hover {
        transform: translateY(-5px);
        box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
      }
    </style>
  </head>
  <body>
    <div class="box1"></div>
    <div class="box2"></div>
    <div class="box3">aaaaaaaaaaaaaaa</div>

    <div class="box4"></div>
    <div class="box5"></div>
  </body>
</html>
